/**
 * Description:
 * Class Name:EnumSetTest
 * Date:2022/3/5 13:48
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第8章_Java集合._8_3_Set集合._8_3_4_EnumSet类;

import java.util.EnumSet;

enum Season{
    SPRING, SUMMER, FALL, WINTER;
}

public class EnumSetTest {
    public static void main(String[] args) {
        // 创建一个EnumSet集合，集合元素就是Season枚举类的全部枚举值
        var es1 = EnumSet.allOf(Season.class);
        System.out.println(es1);

        // 创建一个EnumSet空集合，指定其集合元素是Season类的枚举值
        var es2 = EnumSet.noneOf(Season.class);
        System.out.println(es2);

        // 手动添加两个元素
        es2.add(Season.WINTER);
        es2.add(Season.SPRING);
        System.out.println(es2);

        // 以指定枚举值创建EnumSet集合
        var es3 = EnumSet.of(Season.SUMMER, Season.WINTER);
        System.out.println(es3);
        var es4 = EnumSet.range(Season.SUMMER, Season.WINTER);
        System.out.println(es4);

        // 新创建的EnumSet集合元素和es4集合元素有着相同的类型
        // es5集合元素 + es4集合元素 = Season枚举类的全部枚举值
        var es5 = EnumSet.complementOf(es4);
        System.out.println(es5);
    }
}
//[SPRING, SUMMER, FALL, WINTER]
//[]
//[SPRING, WINTER]
//[SUMMER, WINTER]
//[SUMMER, FALL, WINTER]
//[SPRING]
